package me.raih.mapper;

import me.raih.pojo.po.Bill;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.Date;
import java.util.List;

/**
 * @Author Raih
 * @Time 2021/1/5 16:56
 *
 * 订单接口
 *
 */
@Mapper
@Repository
public interface BillMapper {


    List<Bill> findAllBill();

    /**
     * 创建订单
     * @param bill
     * @return
     */
    int addBill(Bill bill);

    /**
     * 通过订单号查询订单
     * @param billNo
     * @return
     */
    Bill findBillByBillNo(@Param("billNo") String billNo);


    List<Bill> findBillByBillNoAndTime(@Param("start")Date start,@Param("end")Date end);


    List<Bill> findBillByBillNoAndPageAndUsername(@Param("billNo") String billNo,
                                            @Param("currentPage") int currentPage,
                                            @Param("pageSize") int pageSize,
                                            @Param("username")String username);

    int findBillByBillNoAndPageAndUsernameNumber(@Param("billNo") String billNo,
                                                 @Param("currentPage") int currentPage,
                                                 @Param("pageSize") int pageSize,
                                                 @Param("username")String username);

    List<Bill> findBillByBillNoAndPageAndUsernameAndSales(@Param("billNo") String billNo,
                                                    @Param("currentPage") int currentPage,
                                                    @Param("pageSize") int pageSize,
                                                    @Param("username")String username,
                                                    @Param("salesName")String salesName);


    int findBillByBillNoAndPageAndUsernameAndSalesNumber(@Param("billNo") String billNo,
                                                         @Param("currentPage") int currentPage,
                                                         @Param("pageSize") int pageSize,
                                                         @Param("username")String username,
                                                         @Param("salesName")String salesName);

    /**
     * 查询一定时间的信息
     * @param time 几个月
     * @param salesName  售货员是谁
     * @return 订单合集
     */
    List<Bill> findBillByMonth(@Param("month")int time,@Param("salesName") String salesName);

}
